#ifndef _TWITTER_RESOURCE_TRENDS_H_
#define _TWITTER_RESOURCE_TRENDS_H_
#include "resource.h"

NS_BEGIN(Twit)
NS_BEGIN(Resource)
NS_BEGIN(trends)

typedef Object<Value::Trends>       OVTrends;
typedef Object<Value::TrendsList>   OVTrendsList;
/**
* @brief 
*  Returns the top ten topics that are currently trending on Twitter. 
*  The response includes the time of the request, the name of each trend, 
*  and the url to the Twitter Search results page for that topic.
*/
class trends:public OVTrends
{
public:
   trends(IOAuth& o);
};



/**
* @brief 
*  Returns the current top 10 trending topics on Twitter. 
*  The response includes the time of the request, the name of each trending topic, 
*  and query used on Twitter Search results page for that topic.
*/
class current:public OVTrends
{
public:
   current(IOAuth& o);

   /**
   * @param Setting this equal to hashtags will remove all hashtags from the trends list.
   *  http://api.twitter.com/1/trends/current.json?exclude=hashtags
   */
   void set_exclude(bool exclude_hashtags);
};


/**
* @brief Returns the top 20 trending topics for each hour in a given day.
*/
class daily:public OVTrendsList
{
public:
   daily(IOAuth& o);

   /**
   * @param Setting this equal to hashtags will remove all hashtags from the trends list.
   *  http://api.twitter.com/1/trends/current.json?exclude=hashtags
   */
   void set_exclude(bool exclude_hashtags);
   /**
   * @param date
   *  The start date for the report. The date should be formatted YYYY-MM-DD. 
   *  A 404 error will be thrown if the date is older than the available search index (7-10 days). 
   *  Dates in the future will be forced to the current date.
   *  ex.)  http://api.twitter.com/1/trends/daily.json?date=2010-06-20
   */
   void set_date(std::string date);
};


/**
* @brief Returns the top 30 trending topics for each day in a given week.
*/
struct weekly:public daily
{
   weekly(IOAuth& o);
};
NS_END;

DeclareResourceClass(CTrends)
trends::trends trends;
trends::current current;
trends::daily   daily;
trends::weekly  weekly;
EndResourceClass;

NS_END;
NS_END;

#endif /*_TWITTER_RESOURCE_TRENDS_H_*/
